home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Plotting / aa_Intel_Only / Gnuplot / GnuplotSource / Preferences.m < prev    next >
Encoding:
Text File  |  1995-06-12  |  3.4 KB  |  182 lines

  1. /*
  2.  *  Copyright (C) 1993  Robert Davis
  3.  *
  4.  *  This program is free software; you can redistribute it and/or
  5.  *  modify it under the terms of Version 2, or any later version, of 
  6.  *  the GNU General Public License as published by the Free Software 
  7.  *  Foundation.
  8.  */
  9.  
  10. static char RCSId[]="$Id: Preferences.m,v 1.7 1993/05/18 03:55:36 davis Exp $";
  11.  
  12.  
  13. #import <appkit/Application.h>
  14. #import <appkit/Button.h>
  15. #import <appkit/Listener.h>
  16. #import <appkit/Matrix.h>
  17. #import <appkit/Panel.h>
  18.  
  19. #import <defaults/defaults.h>
  20.  
  21. #import "Gnuplot.h"
  22. #import "Preferences.h"
  23.  
  24. #define    OWNER    "Gnuplot"        /* Owner of defaults    */
  25.  
  26. static NXDefaultsVector GnuplotDefaults = {
  27.     {"ConstantUpdate", "1"},        /* Update after every change    */
  28.     {"NewDocument", "1"},        /* Create a new doc at launch    */
  29.     {"DefaultInspector", "2"},        /* Default Pane is Data        */
  30.     {"ReadInitFile", "1"},        /* Currently unused        */
  31.     {"HalvePlot", "1"},            /* Make plots half-size        */
  32.     {NULL}
  33. };
  34.  
  35.  
  36. @implementation Preferences
  37.  
  38. - init
  39. {
  40.     [super init];
  41.     NXRegisterDefaults(OWNER, GnuplotDefaults);
  42.  
  43.     /*  Set instance variables to their defaults.  */
  44.  
  45.     constantUpdate = *NXGetDefaultValue(OWNER, "ConstantUpdate") - '0';
  46.     [Gnuplot setConstantUpdate:constantUpdate];
  47.  
  48.     newDocument = (*NXGetDefaultValue(OWNER, "NewDocument") != '0');
  49.     defaultInspector = *NXGetDefaultValue(OWNER, "DefaultInspector") - '0';
  50.  
  51.     halvePlot = (*NXGetDefaultValue(OWNER, "HalvePlot") != '0');
  52.     [Gnuplot setHalvePlot:halvePlot];
  53.  
  54.     return self;
  55. }
  56.  
  57.  
  58. - free
  59. {
  60.     [window free];
  61.     return [super free];
  62. }
  63.  
  64.  
  65. - awakeFromNib
  66. {
  67.     [window setFrameUsingName:"PreferencesPanel"];
  68.     [window setFrameAutosaveName:"PreferencesPanel"];
  69.  
  70.     [constantUpdateMatrix selectCellWithTag:constantUpdate];
  71.  
  72.     [newDocumentButton setState:newDocument];
  73.     [defaultInspectorMatrix selectCellWithTag:defaultInspector];
  74.     [halvePlotMatrix selectCellWithTag:halvePlot? 1:0];
  75.  
  76.     return self;
  77. }
  78.  
  79.  
  80. - showPanel:sender
  81. {
  82.     if (!window) {
  83.     [NXApp loadNibSection: "Preferences.nib" 
  84.             owner: self
  85.             withNames: NO
  86.              fromZone: [self zone]];
  87.     }
  88.  
  89.     [window makeKeyAndOrderFront:self];
  90.     return self;
  91. }
  92.  
  93.  
  94.  
  95. - doSetConstantUpdate:sender
  96. {
  97.     char aString[2];
  98.  
  99.     constantUpdate = [constantUpdateMatrix selectedTag];
  100.     aString[0] = '0' + constantUpdate;
  101.     aString[1] = '\0';
  102.     NXWriteDefault (OWNER, "ConstantUpdate", aString);
  103.  
  104.     [Gnuplot setConstantUpdate:constantUpdate];
  105.     return self;
  106. }
  107.  
  108.  
  109.  
  110. - (int)constantUpdate
  111. {
  112.     return constantUpdate;
  113. }
  114.  
  115.  
  116. - doSetNewDocument:sender
  117. {
  118.     const char *aString;
  119.  
  120.     if (newDocument = [newDocumentButton state]) aString = "1";
  121.     else aString = "0";
  122.     NXWriteDefault (OWNER, "NewDocument", aString);
  123.  
  124.     return self;
  125. }
  126.  
  127.  
  128.  
  129. - (BOOL) newDocument
  130. {
  131.     return newDocument;
  132. }
  133.  
  134.  
  135. - doSetDefaultInspector:sender
  136. {
  137.     char aString[2];
  138.  
  139.     defaultInspector = [defaultInspectorMatrix selectedTag];
  140.     aString[0] = '0' + defaultInspector;
  141.     aString[1] = '\0';
  142.     NXWriteDefault (OWNER, "DefaultInspector", aString);
  143.     return self;
  144. }
  145.  
  146.  
  147. - (int)defaultInspector
  148. {
  149.     return defaultInspector;
  150. }
  151.  
  152.  
  153. - doSetHalvePlot:sender
  154. {
  155.     const char *aString;
  156.  
  157.     if (halvePlot = [halvePlotMatrix selectedTag]) aString = "1";
  158.     else aString = "0";
  159.     NXWriteDefault (OWNER, "HalvePlot", aString);
  160.  
  161.     [Gnuplot setHalvePlot:halvePlot];
  162.  
  163.     return self;
  164. }
  165.  
  166.  
  167. - (BOOL)halvePlot
  168. {
  169.     return halvePlot;
  170. }
  171.  
  172.  
  173.  
  174. // Shuts up the compiler about unused RCSId
  175. - (const char *) rcsid
  176. {
  177.     return RCSId;
  178. }
  179.  
  180.  
  181. @end
  182.